package tech.siso.utils;

import java.util.regex.Pattern;

public class StringUtil {

    /**
     * 判断字符串是否为空
     *
     * @param str
     * @return
     */
    public static boolean isEmpty(String str) {
        if (str == null) {
            return true;
        }
        return str.trim().isEmpty();
    }

    /**
     * 判断字符串是否纯数字
     *
     * @param cs
     * @return
     */
    public static boolean isInteger(String cs) {
        // 判断是否为空，如果为空则返回false
        if (isEmpty(cs)) {
            return false;
        }
        // 通过 length() 方法计算cs传入进来的字符串的长度，并将字符串长度存放到sz中
        final int sz = cs.length();
        // 通过字符串长度循环
        for (int i = 0; i < sz; i++) {
            // 判断每一个字符是否为数字，如果其中有一个字符不满足，则返回false
            if (!Character.isDigit(cs.charAt(i))) {
                return false;
            }
        }
        // 验证全部通过则返回true
        return true;
    }

    /**
     * 判断字符串是否为正整数或者浮点数
     * 1.11 -> true
     * 1 -> true
     * -1 -> false
     * 1a -> false
     *
     * @param cs
     * @return
     */
    public static boolean isNumeric(String cs) {
        // 判断正整数正则
        Pattern patternInteger = Pattern.compile("^\\d+(\\.\\d+)?$");
        // 判断浮点数正则
        Pattern patternFloat = Pattern.compile("^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$");
        return patternFloat.matcher(cs).matches() || patternInteger.matcher(cs).matches();
    }

}


